package cn.jiahua.hospital.mapper;

import cn.jiahua.hospital.dto.DoctorDto;

import cn.jiahua.hospital.dto.PageDoctorDto;
import cn.jiahua.hospital.dto.TdepartmentsDto;
import cn.jiahua.hospital.pojo.Departments;
import cn.jiahua.hospital.pojo.Doctor;
import cn.jiahua.hospital.pojo.Hospital;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;


public interface DoctorMapper {


    public Doctor getDoctorById(@Param(value = "id") Integer id);

    public DoctorDto getDoctor(@Param(value = "id") Integer id);

    public List<Doctor> getDoctorListByMap(Map<String, Object> param);

    public List<DoctorDto> getDoctorList(Map<String, Object> param);

    public Integer getDoctorCount(Map<String, Object> param);

    public List<DoctorDto> getDoctorList1(Map<String, Object> param);

    public List<DoctorDto> searchDocotr(Map<String, Object> param);

    public List<Hospital> searchHospital(Map<String, Object> param);

    public List<TdepartmentsDto> searchTdepartments(Map<String, Object> param);

    public Integer getDoctorCount1(Map<String, Object> param);

    public Integer getDoctorCountByMap(Map<String, Object> param);

    public Integer insertDoctor(DoctorDto doctor);

    public String exist(String account);

    public Integer updateDoctor(Doctor doctor);

    public Integer updateDoctor_pic(DoctorDto doctorDto);

    public Integer deleteDoctorById(@Param(value = "id") Integer id);

    public Integer batchDeleteDoctor(Map<String, List<String>> params);

    public Integer updateForbidden(@Param(value = "id") Integer id, @Param(value = "state") Integer state);


	public List<Doctor> doctorSubscribeData(@Param(value = "pageNo")Integer pageNo,
											@Param(value = "pageSize")Integer pageSize);

    public List<Doctor> getDoctorListlimit(Map<String, Object> param);

    public List<PageDoctorDto> getDoctorPageInfo(@Param(value="doctorId")Integer doctorId,
                                           @Param(value="hospitalId")Integer hospitalId,
                                           @Param(value="tdepartmentsId")Integer tdepartmentsId);

    public List<DoctorDto> gettDepartmentsDoctor(@Param(value="dieseaseId")Integer dieseaseId,
                                               @Param(value="hospitalId")Integer hospitalId,
                                               @Param(value="doctorId")Integer doctorId);


    public List<Integer> getDoctorByCondition(@Param(value = "hospitalId")Integer hospitalId,
                                          @Param(value="name")String name);
}
